package org.example.pet.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Pet {
    //宠物ID
    @TableId(value = "pet_id", type = IdType.AUTO)
    private Long petId;
    //品种ID
    private Long breedId;
    //宠物名字
    private String name;
    //年龄(月)
    private Integer age;
    //性别：MALE-公，FEMALE-母，UNKNOW-未知
    private String gender;
    //颜色
    private String color;
    //体型：SMALL-小型，MEDIUM-中等，LARGE-大型
    private String size;
    //健康状况：EXCELLENT-优秀，GOOD-良好，FAIR-尚可，POOR-差的
    private String healthStatus;
    //详细描述
    private String description;
    //背景故事
    private String story;
    //领养状态：AVAILABLE-可领养，UNAVAILABLE-已领养
    private String status;
    //来源：SHELTER-避难所，RESCUE-救援，OWNER-所有者
    private String source;
    //图片地址
    private String imgurl;
    
    public enum GenderVal {
        MALE("MALE", "公"),
        FEMALE("FEMALE", "母"),
        UNKNOW("UNKNOW", "未知");
        
        private String val;
        private String desc;

        GenderVal(String val, String desc) {
            this.val = val;
            this.desc = desc;
        }
        
        public String getVal() {
            return val;
        }

        public String getDesc() {
            return desc;
        }
    }
    
    public enum SizeVal {
        SMALL("SMALL", "小型"),
        MEDIUM("MEDIUM", "中等"),
        LARGE("LARGE", "大型");

        private String val;
        private String desc;

        SizeVal(String val, String desc) {
            this.val = val;
            this.desc = desc;
        }

        public String getVal() {
            return val;
        }

        public String getDesc() {
            return desc;
        }
    }
    
    public enum HealthStatusVal {
        EXCELLENT("", "优秀"),
        GOOD("GOOD", "良好"),
        FAIR("FAIR", "尚可"),
        POOR("POOR", "差的");

        private String val;
        private String desc;

        HealthStatusVal(String val, String desc) {
            this.val = val;
            this.desc = desc;
        }

        public String getVal() {
            return val;
        }

        public String getDesc() {
            return desc;
        }
    }
    
    public enum StatusVal {
        AVAILABLE("AVAILABLE", "可领养"),
        UNAVAILABLE("UNAVAILABLE", "已领养");

        private String val;
        private String desc;

        StatusVal(String val, String desc) {
            this.val = val;
            this.desc = desc;
        }

        public String getVal() {
            return val;
        }

        public String getDesc() {
            return desc;
        }
    }
    
    public enum SourceVal {
        SHELTER("SHELTER", "避难所"),
        RESCUE("RESCUE", "救援"),
        OWNER("OWNER", "所有者"),
        ;

        private String val;
        private String desc;

        SourceVal(String val, String desc) {
            this.val = val;
            this.desc = desc;
        }

        public String getVal() {
            return val;
        }

        public String getDesc() {
            return desc;
        }
    }
}
